package com.itheima.easy.service;

import com.itheima.easy.base.PageResponse;
import com.itheima.easy.vo.UserAddVo;
import com.itheima.easy.vo.UserVo;

import java.util.List;

/**
 * @Description：用户表服务类
 */
public interface UserService {

    /**
     * @Description 多条件查询用户表分页列表
     * @param userVo 查询条件
     * @param pageNum 页码
     * @param pageSize 每页条数
     * @return Page<User>
     */
    PageResponse<UserVo> findUserPage(UserVo userVo, int pageNum, int pageSize);

    /**
     * @Description 创建用户表
     * @param userVo 对象信息
     * @return User
     */
    UserVo createUser(UserAddVo userVo);

    /**
     * @Description 修改用户表
     * @param userVo 对象信息
     * @return Boolean
     */
    Boolean updateUser(UserAddVo userVo);

    /**
     * @description 多条件查询用户表列表
     * @param userVo 查询条件
     * @return: List<User>
     */
    List<UserVo> findUserList(UserVo userVo);

    /**
     * @description 部门下员工
     * @param deptNo 部门
     * @return: List<User>
     */
    List<UserVo> findUserVoListByDeptNo(String deptNo);

    /**
     * @description 职位下员工
     * @param postNo 职位
     * @return: List<User>
     */
    List<UserVo> findUserVoListByPostNo(String postNo);

    /**
     * @description 角色下员工
     * @param roleId 角色
     * @return: List<User>
     */
    List<UserVo> findUserVoListByRoleId(Long roleId);

    /***
     * @description 查询用户构建对象
     *
     * @param username
     * @param openId
     * @param mobile
     * @return
     * @return: com.itheima.easy.vo.UserVo
     */
    UserVo findUserVoForLogin(String username, String openId, String mobile);

    /**
     * @description 充值密碼
     * @param userId 用戶Id
     * @return: List<User>
     */
    Boolean resetPasswords(String userId);

    int deleteUserByIds(List<Long> userIds);
}
